
struct sum
{
    struct _
    {
    typedef _ value;
      template< class x, class=void>
      struct app
      {
        struct _
        {
        typedef _ value;
          template< class y, class=void>
          struct app
          {
              struct _:  pAdd::_::template app<x >::_::
			  template app<y >::_
              {
              typedef typename pAdd::_::template app<x >::_::
			  template app<y >::_::value value;
              };
          };
        };
      };
    };
};

struct mainfunction
{
  struct _:  sum::_::app<Int<1>  >::_::app<Int<2>  >::_
  {
   typedef sum::_::app<Int<1>  >::_::app<Int<2>  >::_::value value;
  };
};
